\Verb+int strncmp(const char *s1, const char *s2, size_t n)+\\
porównuje co najwyżej {\tt n} znaków
zawartych w {\tt s1} i {\tt s2} i zwraca
\begin{itemize}
\item liczbę mniejszą od zera, gdy {\tt s1 < s2}
\item {\tt 0}, gdy {\tt s1} jest taki sam jak {\tt s2}
\item liczbę większą od zera, gdy {\tt s1 > s2}.
\end{itemize}


Plik {\sf strncmp.c}.
\begin{lstC}
#include "strdruk.h"

#ifdef __cplusplus
#include <cstring>
#include <cstdlib>
#include <cstdio>
#else
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#endif

void druk(char const * const s1, char const * const s2, int n) {
  int wynik = strncmp(s1, s2, n);
  printf("%d\t", wynik);
  if (wynik < 0) {
    printf("\"%s\" < \"%s\"", s1, s2);
  } else if (wynik == 0) {
    printf("\"%s\" == \"%s\"", s1, s2);
  } else {
    printf("\"%s\" > \"%s\"", s1, s2);
  }
  printf(" \t(przy porownaniu %d pierwszych)\n", n);
}

int main(void) {
  char s1[] = "hello"; 
  
  druk(s1, "hi", 2);    // drugi wiekszy
  druk(s1, "halo", 2);  // drugi mniejszy
  druk(s1, "hi", 1);
  druk(s1, "halo", 1);
}
\end{lstC}

Uruchomienie.
\begin{lstV}
-4      "hello" < "hi"  (przy porownaniu 2 pierwszych)
4       "hello" > "halo"        (przy porownaniu 2 pierwszych)
0       "hello" == "hi"         (przy porownaniu 1 pierwszych)
0       "hello" == "halo"       (przy porownaniu 1 pierwszych)
\end{lstV}